home *** CD-ROM | disk | FTP | other *** search
-
-
-
- PRINTF C Library Procedures PRINTF
-
-
-
- NNAAMMEE
- printf, fprintf, sprintf, vprintf, vfprintf, vsprintf,
- vsnprintf - formatted output conversion
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
-
- pprriinnttff((ffoorrmmaatt [,, arg ] ... ))
- cchhaarr **ffoorrmmaatt;;
-
- ffpprriinnttff((ssttrreeaamm,, ffoorrmmaatt [,, arg ] ... ))
- FFIILLEE **ssttrreeaamm;;
- cchhaarr **ffoorrmmaatt;;
-
- cchhaarr **sspprriinnttff((ss,, ffoorrmmaatt [,, arg ] ... ))
- cchhaarr **ss,, **ffoorrmmaatt;;
-
- ##iinncclluuddee <<vvaarraarrggss..hh>>
- vvpprriinnttff((ffoorrmmaatt,, aarrggss))
- cchhaarr **ffoorrmmaatt;;
- vvaa__lliisstt aarrggss;;
-
- vvffpprriinnttff((ssttrreeaamm,, ffoorrmmaatt,, aarrggss))
- FFIILLEE **ssttrreeaamm;;
- cchhaarr **ffoorrmmaatt;;
- vvaa__lliisstt aarrggss;;
-
- cchhaarr **vvsspprriinnttff((ss,, ffoorrmmaatt,, aarrggss))
- cchhaarr **ss,, **ffoorrmmaatt;;
- vvaa__lliisstt aarrggss;;
-
- cchhaarr **vvssnnpprriinnttff((ss,, nnBByytteess,, ffoorrmmaatt,, aarrggss))
- cchhaarr **ss;;
- iinntt nnBByytteess;;
- cchhaarr **ffoorrmmaatt;;
- vvaa__lliisstt aarrggss;;
-
- DDEESSCCRRIIPPTTIIOONN
- _P_r_i_n_t_f places output on the standard output stream ssttddoouutt.
- _F_p_r_i_n_t_f places output on the named output _s_t_r_e_a_m. _S_p_r_i_n_t_f
- places `output' in the string _s, followed by the character
- `\0'. Alternate forms, in which the arguments have already
- been captured using the variable-length argument facilities
- of _v_a_r_a_r_g_s(3), are available under the names _v_p_r_i_n_t_f,
- _v_f_p_r_i_n_t_f, _v_s_p_r_i_n_t_f, and _v_s_n_p_r_i_n_t_f. (_V_s_n_p_r_i_n_t_f is like
- _v_s_p_r_i_n_t_f, except that it takes an additional argument speci-
- fying the size of the character buffer _s. It is included
- for compatibility with the Carnegie Mellon CS library.)
-
- Each of these functions converts, formats, and prints the
- arguments that come after the _f_o_r_m_a_t argument. The _f_o_r_m_a_t
- argument controls this conversion process. It is a
-
-
-
- Sprite v1.0 24 September 1990 1
-
-
-
-
-
-
- PRINTF C Library Procedures PRINTF
-
-
-
- character string which contains two types of objects: plain
- characters, which are simply copied to the output stream,
- and conversion specifications, each of which causes conver-
- sion and printing of the next successive _a_r_g.
-
- Each conversion specification is introduced by the character
- %%. The remainder of the conversion specification includes
- in the following order
-
- oo++ Zero or more of the following flags:
-
- oo++ a `#' character specifying that the value should
- be converted to an ``alternate form''. For cc, dd,
- ss, and uu, conversions, this option has no effect.
- For oo conversions, the precision of the number is
- increased to force the first character of the out-
- put string to a zero. For xx(XX) conversion, a
- non-zero result has the string 00xx(00XX) prepended to
- it. For ee, EE, ff, gg, and GG, conversions, the
- result will always contain a decimal point, even
- if no digits follow the point (normally, a decimal
- point only appears in the results of those conver-
- sions if a digit follows the decimal point). For
- gg and GG conversions, trailing zeros are not
- removed from the result as they would otherwise
- be;
-
- oo++ a minus sign `-' which specifies _l_e_f_t _a_d_j_u_s_t_m_e_n_t
- of the converted value in the indicated field;
-
- oo++ a `+' character specifying that there should
- always be a sign placed before the number when
- using signed conversions;
-
- oo++ a space specifying that a blank should be left
- before a positive number during a signed conver-
- sion. A `+' overrides a space if both are used;
-
- oo++ a zero `0' character indicating that zero-padding
- should be used rather than blank-padding. A `-'
- overrides a `0' if both are used;
-
- oo++ an optional digit string specifying a _f_i_e_l_d _w_i_d_t_h; if
- the converted value has fewer characters than the field
- width it will be blank-padded on the left (or right, if
- the left-adjustment indicator has been given) to make
- up the field width (note that a leading zero is a flag,
- but an embedded zero is part of a field width);
-
- oo++ an optional period, followed by an optional digit
- string giving a _p_r_e_c_i_s_i_o_n which specifies the number of
- digits to appear after the decimal point, for e- and
-
-
-
- Sprite v1.0 24 September 1990 2
-
-
-
-
-
-
- PRINTF C Library Procedures PRINTF
-
-
-
- f-conversion, or the maximum number of characters to be
- printed from a string; if the digit string is missing,
- the precision is treated as zero;
-
- oo++ the character ll specifying that a following dd, ii, oo, xx,
- or uu corresponds to a long integer _a_r_g, or that a fol-
- lowing nn corresponds to a pointer to a long integer
- _a_r_g;
-
- oo++ the character hh specifying that a following dd, ii, oo, xx,
- or uu corresponds to a short integer _a_r_g, or that a fol-
- lowing nn corresponds to a pointer to a short integer
- _a_r_g;
-
- oo++ a character which indicates the type of conversion to
- be applied.
-
- A field width or precision may be `*' instead of a digit
- string. In this case an integer _a_r_g supplies the field
- width or precision.
-
- The conversion characters and their meanings are
-
- ddooxx The integer _a_r_g is converted to signed decimal,
- unsigned octal, or unsigned hexadecimal notation
- respectively.
-
- ii An alias for `d'.
-
- ff The float or double _a_r_g is converted to decimal nota-
- tion in the style `[--]ddd.ddd' where the number of d's
- after the decimal point is equal to the precision
- specification for the argument. If the precision is
- missing, 6 digits are given; if the precision is expli-
- citly 0, no digits and no decimal point are printed.
-
- eeEE The float or double _a_r_g is converted in the style
- `[--]d..dddee+_dd' where there is one digit before the
- decimal point and the number after is equal to the pre-
- cision specification for the argument; when the preci-
- sion is missing, 6 digits are produced. An uppercase E
- is used for `E' conversion.
-
- ggGG The float or double _a_r_g is printed in style ff or in
- style ee (EE) whichever gives full precision in minimum
- space.
-
- cc The character _a_r_g is printed.
-
- ss _A_r_g is taken to be a string (character pointer) and
- characters from the string are printed until a null
- character or until the number of characters indicated
-
-
-
- Sprite v1.0 24 September 1990 3
-
-
-
-
-
-
- PRINTF C Library Procedures PRINTF
-
-
-
- by the precision specification is reached; however if
- the precision is 0 or missing all characters up to a
- null are printed.
-
- uu The unsigned integer _a_r_g is converted to decimal and
- printed (the result will be in the range 0 through MAX-
- UINT, where MAXUINT equals 4294967295 on a VAX-11 and
- 65535 on a PDP-11).
-
- nn _A_r_g is taken to be a pointer to an integer (possibly
- sshhoorrtt or lloonngg) through which is stored the number of
- characters written to the output stream (or string) so
- far by this call to pprriinnttff (or ffpprriinnttff, etc.).
-
- pp _A_r_g is taken to be a pointer to vvooiidd; it is printed in
- style xx.
-
- %% Print a `%'; no argument is converted.
-
- In no case does a non-existent or small field width cause
- truncation of a field; padding takes place only if the
- specified field width exceeds the actual width. Characters
- generated by _p_r_i_n_t_f are printed as by _p_u_t_c(3S).
-
- RREETTUURRNN VVAALLUUEE
- Except for _s_p_r_i_n_t_f, _v_s_p_r_i_n_t_f, and _v_s_n_p_r_i_n_t_f, the functions
- all return the number of characters printed, or -1 if an
- error occurred. _S_p_r_i_n_t_f, _v_s_p_r_i_n_t_f, and _v_s_n_p_r_i_n_t_f return a
- pointer to the result string (the first argument).
-
- EEXXAAMMPPLLEESS
- To print a date and time in the form `Sunday, July 3,
- 10:02', where _w_e_e_k_d_a_y and _m_o_n_t_h are pointers to null-
- terminated strings:
-
- printf("%s, %s %d, %02d:%02d", weekday, month, day,
- hour, min);
-
- To print pi to 5 decimals:
-
- printf("pi = %.5f", 4*atan(1.0));
-
- SSEEEE AALLSSOO
- putc(3S), scanf(3S)
-
- BBUUGGSS
- The functions still supports %_D, %_O, and %_U. Do not use
- these formats, as they will be disappearing soon.
-
- For ANSI compatibility, the _s_p_r_i_n_t_f family should return the
- number of characters printed, rather than the buffer string.
-
-
-
-
- Sprite v1.0 24 September 1990 4
-
-
-
-